//引入对应的方法名
import{
  RECORD_LOGIN_USER,
  LOGOUT,
  RECORD_TOKEN,
  UPDATE_SHOW_LOADING,
  RECORD_SEARCH_VALUE,
  RECORD_BAND_ID,
  RECORD_SAMPLE_NO,
  UPDAT_SHOW_CHECK_BOX,
  RECORD_SAMPLE_ID,
  RECORD_BAND_NO,
} from "./mutation-types"
import Cache from "@/util/cache"
//当需要将对应的值存到缓存中去的话，使用Cache里面的put、get、remove方法
export default{
  //保存token值
  [RECORD_TOKEN](state,data){
    Cache.sessionPut('TOKEN', data)
    state.token = data
  },
  // 记录用户信息
  [RECORD_LOGIN_USER] (state,user) {
    Cache.sessionPut('LOGIN_USER',user)
    state.login_user = user
  },
  //退出登录
  [LOGOUT] (state) {
    Cache.sessionRemove('LOGIN_USER')
    Cache.sessionRemove('TOKEN')
    state.token = ''
    state.login_user = {}
  },
  [UPDATE_SHOW_LOADING] (state, flag) {
    state.show_loading = flag
  },
  [RECORD_SEARCH_VALUE] (state, data) {
    state.search_value = data
  },
  [RECORD_BAND_ID] (state, id) {
    state.band_id = id
  },
  [RECORD_BAND_NO] (state, no) {
    state.band_no = no
  },
  [RECORD_SAMPLE_NO] (state, id) {
    state.sample_no = id
  },
  [UPDAT_SHOW_CHECK_BOX](state, flag) {
    state.show_check_box = flag
  }, 
  [RECORD_SAMPLE_ID](state, id) {
    state.sample_id = id
  }
}
//第一种方法：直接使用
//在各个组件中使用this.$store.commit('方法名',参数...);
//或者this.$store.commit({
//  type:'方法名',
//  参数1：'',
//  ...
//});

//第二种方法：通过对象的解构和扩展运算符（实际上扩展运算符就是把辅助函数返回的属性或者方法，放到vue实例中去）
/**
 * 1、引入vuex中的mapState、mapMutations方法
 * import {mapState, mapMutations} from 'vuex'
 * 2、将vuex中的state和mutations映射到vue对象中的data和methods中
 * computed:{
 *  ...mapState([
 *      'vue实例中的名称':'vuex中的state名称'
 *  ])
 * }
 * methods: {
 *  ...mapMutations([
 *     'vue实例中的方法名':'对应vuex mutations中的方法'
 * ]),
 * //具体实例参考
 */
